{{>licenseInfo}}
package org.openapitools.handler;

import io.undertow.server.*;
import io.undertow.util.*;

import {{modelPackage}}.*;

@SuppressWarnings("TooManyFunctions")
public interface PathHandlerInterface {
{{#apiInfo}}
  {{#apis}}
    {{#operations}}
      {{#operation}}

    /**
{{#summary}}     * <p>{{{.}}}</p>
     *
{{/summary}}
{{#notes}}     * <p>{{{.}}}</p>
     *
{{/notes}}
     * <p><b>Endpoint</b>: {@link Methods#{{{httpMethod}}} {{{httpMethod}}}} "{{{basePathWithoutHost}}}{{{path}}}" (<i>privileged: {{{hasAuthMethods}}}</i>)</p>
{{#hasParams}}
     *
     * <p><b>Request parameters</b>:</p>
     * <ul>
  {{#allParams}}
    {{^isBodyParam}}
     * <li>
     * <p>"<b>{{{baseName}}}</b>"
{{#description}}     * <p>{{{.}}}</p>
{{/description}}
     * <p>
     * - Parameter type: <b>{{>isContainerDoc}}{{#isModel}}{@link {{{dataType}}}}{{/isModel}}{{^isModel}}{{#isFile}}{{#isBinary}}Binary{{/isBinary}}File{{/isFile}}{{^isFile}}{@link {{dataType}}}{{/isFile}}{{/isModel}}</b><br/>
     * - Appears in: <b>{{#isFormParam}}{@link io.undertow.server.handlers.form.FormDataParser Form}{{/isFormParam}}{{#isQueryParam}}{@link HttpServerExchange#getQueryParameters Query}{{/isQueryParam}}{{#isPathParam}}{@link HttpServerExchange#getPathParameters Path}{{/isPathParam}}{{#isHeaderParam}}{@link Headers Header}{{/isHeaderParam}}{{#isCookieParam}}{@link HttpServerExchange#getRequestCookie Cookie}{{/isCookieParam}}{{#isBodyParam}}{@link HttpServerExchange#getRequestChannel Body}{{/isBodyParam}}</b><br/>
{{#defaultValue}}     * - Default value: <b>{{{.}}}</b><br/>
{{/defaultValue}}
     * - Required: <b>{{{required}}}</b>
     * </p>
     * </li>
    {{/isBodyParam}}
  {{/allParams}}
     * </ul>
{{/hasParams}}
{{#hasResponseHeaders}}
     * <p><b>Response headers</b>: [{{#responseHeaders}}{{{.}}}{{^-last}}, {{/-last}}{{/responseHeaders}}]</p>
{{/hasResponseHeaders}}
{{#hasConsumes}}
     *
     * <p><b>Consumes</b>: {{{consumes}}}</p>
{{#hasBodyParam}}{{#bodyParam}}     * <p><b>Payload</b>: {{>isContainerDoc}}{{#isModel}}{@link {{{dataType}}}}{{/isModel}}{{^isModel}}{{#isFile}}{{#isBinary}}Binary {{/isBinary}}File{{/isFile}}{{^isFile}}{@link {{baseType}}}{{/isFile}}{{/isModel}} (<i>required: {{{required}}}</i>{{/bodyParam}})</p>
{{/hasBodyParam}}
{{/hasConsumes}}
     *
{{#hasProduces}}     * <p><b>Produces</b>: {{{produces}}}</p>
{{/hasProduces}}
{{#returnBaseType}}     * <p><b>Returns</b>: {{>isContainerDoc}}{@link {{{returnBaseType}}}}</p>
{{/returnBaseType}}
     *
     * <p><b>Responses</b>:</p>
     * <ul>
{{#responses}}
     * <li><b>{{#isDefault}}Default{{/isDefault}}{{^isDefault}}{{{code}}} ({{#is1xx}}informative{{/is1xx}}{{#is2xx}}success{{/is2xx}}{{#is3xx}}redirection{{/is3xx}}{{#is4xx}}client error{{/is4xx}}{{#is5xx}}server error{{/is5xx}}){{/isDefault}}</b>{{#message}}: {{{.}}}{{/message}}</li>
{{/responses}}
     * </ul>
     */
    @javax.annotation.Nonnull
{{#isDeprecated}}    @Deprecated
{{/isDeprecated}}
    HttpHandler {{{operationId}}}();
      {{/operation}}
    {{/operations}}
  {{/apis}}
{{/apiInfo}}
}
